package com.example.onlineshop.model.product;

import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;

/**
 * 产品实体类
 */
@Data
@ToString
public class Product {
    /**
     * 产品ID
     */
    private Long id;

    /**
     * 产品名称
     */
    private String name;

    /**
     * 产品分类
     */
    private String category;

    /**
     * 当前价格
     */
    private BigDecimal price;

    /**
     * 原价（可选）
     */
    private BigDecimal originalPrice;

    /**
     * 评分
     */
    private Double rating;

    /**
     * 评价数量
     */
    private Integer reviewCount;

    /**
     * 产品图片URL
     */
    private String imageUrl;

    /**
     * 是否新品
     */
    private Boolean isNew;

    /**
     * 是否热销
     */
    private Boolean isHot;

    /**
     * 折扣（可选）
     */
    private BigDecimal discount;

    /**
     * 产品规格
     */
    private ProductSpecifications specifications;

    // 构造函数
    public Product() {
    }


    // 业务方法

    /**
     * 计算折扣百分比
     */
    public BigDecimal calculateDiscountPercentage() {
        if (originalPrice != null && originalPrice.compareTo(BigDecimal.ZERO) > 0) {
            return originalPrice.subtract(price)
                    .divide(originalPrice, 2, BigDecimal.ROUND_HALF_UP)
                    .multiply(BigDecimal.valueOf(100));
        }
        return BigDecimal.ZERO;
    }

    /**
     * 是否有折扣
     */
    public boolean hasDiscount() {
        return discount != null && discount.compareTo(BigDecimal.ZERO) > 0;
    }

}